Venue: Cotton University
Date: 20th August, 2024
Welcome to this session on the Examination of Climate Data, Observation Methods, and Climate Models.
In this session, we'll explore how climate data is collected and analyzed, the various methods used to observe climate patterns, and how climate models help predict future climate scenarios. Understanding these aspects is crucial for educators, as it enables them to impart knowledge about climate change effectively to students.
Let's start by examining a recent projection of global temperature trends, which highlights the critical timeline for reaching 1.5°C above pre-industrial levels:
from IPython.display import Image, display
from IPython.display import HTML
image_path = "D:/teachers_training_program/figures/fig1.png"
display(Image(filename=image_path))
# Automatically hide the code after execution
HTML('''<script>
code_show = false;
function code_toggle() {
if (code_show){
$('div.input').hide();
} else {
$('div.input').show();
}
code_show = !code_show
}
$( document ).ready(code_toggle);
</script>
Click <a href="javascript:code_toggle()">here</a> to toggle the code.
''')
Climate data includes long-term records of temperature, rainfall, and other atmospheric variables. For instance, the dataset above shows temperature records over time, while the example below illustrates how rainfall patterns have changed. Understanding such data helps identify trends and patterns in climate change.
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import scipy.io as sio
from pandas import DataFrame as DF
import matplotlib.gridspec as gridspec
from matplotlib.ticker import (MultipleLocator, AutoMinorLocator, ScalarFormatter, PercentFormatter)
import cartopy
import cartopy.crs as ccrs
import matplotlib.ticker as mticker
from cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatter
from mpl_toolkits.axes_grid1.inset_locator import inset_axes
import xarray as xr
import pandas as pd
from matplotlib.patches import Rectangle
from datetime import datetime, timedelta, date, time
import os.path
import seaborn as sns
from scipy import stats
from scipy.stats import pearsonr
from datetime import datetime
from datetime import timedelta
import scipy.io
import colormaps as cmaps
from scipy.stats import norm
from scipy.stats import gaussian_kde
import warnings
warnings.filterwarnings("ignore", category=UserWarning)
warnings.filterwarnings("ignore", category=xr.coding.times.SerializationWarning) # Corrected this line
dataset= xr.open_dataset(r"D:\teachers_training_program\NEI24.nc")
june_sep_precip = dataset.sel(time=dataset['time'].dt.month.isin([6, 7, 8, 9]))
# Grouping by year and calculating the mean precipitation for June to September
annual_precip = june_sep_precip['precipitation'].groupby('time.year').mean(dim='time')
# Extracting years and precipitation values for linear regression
years = annual_precip['year'].values
precip_values = annual_precip.values
# Define the font size for ticks
fnt = 14
# Perform linear regression for the period 1920-2009
start_year_1920 = 1920
filtered_years_1920 = years[years >= start_year_1920]
filtered_precip_values_1920 = precip_values[years >= start_year_1920]
slope_1920_2009, intercept_1920_2009 = np.polyfit(filtered_years_1920, filtered_precip_values_1920, 1)
slope_1920_2009_per_decade = slope_1920_2009 * 10 # Convert slope to per decade
trend_line_1920_2009 = slope_1920_2009 * filtered_years_1920 + intercept_1920_2009
# Perform linear regression for the period 2000-2009
start_year_2000 = 1990
filtered_years_2000 = years[years >= start_year_2000]
filtered_precip_values_2000 = precip_values[years >= start_year_2000]
slope_2000_2009, intercept_2000_2009 = np.polyfit(filtered_years_2000, filtered_precip_values_2000, 1)
slope_2000_2009_per_decade = slope_2000_2009 * 10 # Convert slope to per decade
trend_line_2000_2009 = slope_2000_2009 * filtered_years_2000 + intercept_2000_2009
# Plotting the time series with the two linear trend lines
plt.figure(figsize=(12, 6))
plt.plot(years, precip_values, color='green', label='Mean Precipitation (June-Sep)')
plt.plot(filtered_years_1920, trend_line_1920_2009, color='red', linestyle='--', label=f'Trend Line (1920-2009, slope = {slope_1920_2009_per_decade:.4f} mm/day/decade)')
plt.plot(filtered_years_2000, trend_line_2000_2009, color='blue', linestyle='--', label=f'Trend Line (2000-2009, slope = {slope_2000_2009_per_decade:.4f} mm/day/decade)')
# Perform linear regression for the period 2000-2009
start_year_2000 = 1994
filtered_years_2000 = years[years >= start_year_2000]
filtered_precip_values_2000 = precip_values[years >= start_year_2000]
slope_2000_2009, intercept_2000_2009 = np.polyfit(filtered_years_2000, filtered_precip_values_2000, 1)
slope_2000_2009_per_decade = slope_2000_2009 * 10 # Convert slope to per decade
trend_line_2000_2009 = slope_2000_2009 * filtered_years_2000 + intercept_2000_2009
plt.plot(filtered_years_2000, trend_line_2000_2009, color='k', linestyle='--', label=f'Trend Line (2000-2009, slope = {slope_2000_2009_per_decade:.4f} mm/day/decade)')
plt.title('June to September Mean Precipitation with Trend Lines Northeast India (NEI)',fontsize=fnt)
plt.xlabel('Year', fontsize=fnt)
plt.ylabel('Mean Precipitation (mm/day)', fontsize=fnt)
plt.xticks(fontsize=fnt) # Set x-tick font size
plt.yticks(fontsize=fnt) # Set y-tick font size
plt.xlim(1920, 2009)
plt.grid(False)
plt.show()
# odir = r"D:\teachers_training_program\figures\\"
# plt.savefig(odir + 'fig2.png', dpi=300, facecolor='w', edgecolor='w', transparent=False)
In climate data analysis, several key variables are crucial for understanding and predicting climate changes. These variables include:
Observation methods in climate science encompass a variety of techniques, each providing unique insights into different aspects of the Earth's climate system. Below, we explore key observation methods: ground-based measurements, satellite data, ocean buoys, reanalysis data, and climate model intercomparison projects. Each of these methods plays a critical role in our understanding of climate patterns, changes, and trends.
from IPython.display import Image, display
from IPython.display import HTML
image_path = r"D:\teachers_training_program\figures\Screenshot 2024-08-20 093254.png"
display(Image(filename=image_path, width=800, height=300))
# Automatically hide the code after execution
HTML('''<script>
code_show = false;
function code_toggle() {
if (code_show){
$('div.input').hide();
} else {
$('div.input').show();
}
code_show = !code_show
}
$( document ).ready(code_toggle);
</script>
Click <a href="javascript:code_toggle()">here</a> to toggle the code.
''')
from IPython.display import Image, display
from IPython.display import HTML
image_path = r"D:\teachers_training_program\figures\Screenshot 2024-08-20 093057.png"
display(Image(filename=image_path, width=800, height=300))
# Automatically hide the code after execution
HTML('''<script>
code_show = false;
function code_toggle() {
if (code_show){
$('div.input').hide();
} else {
$('div.input').show();
}
code_show = !code_show
}
$( document ).ready(code_toggle);
</script>
Click <a href="javascript:code_toggle()">here</a> to toggle the code.
''')
from IPython.display import Image, display
from IPython.display import HTML
image_path = r"D:\teachers_training_program\figures\GIOVANNI-outputip1hABKd.png"
display(Image(filename=image_path, width=800, height=300))
# Automatically hide the code after execution
HTML('''<script>
code_show = false;
function code_toggle() {
if (code_show){
$('div.input').hide();
} else {
$('div.input').show();
}
code_show = !code_show
}
$( document ).ready(code_toggle);
</script>
Click <a href="javascript:code_toggle()">here</a> to toggle the code.
''')
This figure shows the area-averaged precipitation rate (in mm/day) from the TRMM 3B42 dataset, daily averaged at a 0.25° resolution, over the region bounded by 89°E to 98°E longitude and 22°N to 30°N latitude. The data spans from January 1, 1998, to December 31, 2019. The plot highlights the seasonal and interannual variability in precipitation over this region.
from IPython.display import Image, display
from IPython.display import HTML
image_path = r"D:\teachers_training_program\figures\GIOVANNI-outputOlWBluLH.png"
display(Image(filename=image_path, width=800, height=300))
# Automatically hide the code after execution
HTML('''<script>
code_show = false;
function code_toggle() {
if (code_show){
$('div.input').hide();
} else {
$('div.input').show();
}
code_show = !code_show
}
$( document ).ready(code_toggle);
</script>
Click <a href="javascript:code_toggle()">here</a> to toggle the code.
''')
This figure displays the precipitation forecast from the JAXA RIKEN Nowcast (GSMaP RNC) for August 20, 2024, at 03:00 UTC. The map shows the predicted precipitation intensity across parts of India, Nepal, Bhutan, and Bangladesh, with high-resolution data highlighting potential rainfall regions. This visualization is crucial for monitoring and forecasting precipitation patterns in the region.
The data was generated based on an initial forecast time of 21:00 UTC on August 19, 2024. The information provided here can be used for short-term weather forecasting, aiding in disaster preparedness and resource management in affected regions.
For more details, visit the official GSMaP RNC page: GSMaP RNC.
from IPython.display import Image, display
from IPython.display import HTML
image_path = r"D:\teachers_training_program\figures\gsmap_rnc_initial202408192100_202408200300.png"
display(Image(filename=image_path, width=750, height=400))
# Automatically hide the code after execution
HTML('''<script>
code_show = false;
function code_toggle() {
if (code_show){
$('div.input').hide();
} else {
$('div.input').show();
}
code_show = !code_show
}
$( document ).ready(code_toggle);
</script>
Click <a href="javascript:code_toggle()">here</a> to toggle the code.
''')
Now that we have explored various observation methods used in climate science, let's consider the next key question:
Climate models are essential tools in climate science, providing critical insights into how the Earth's climate system may change in the future. These models use mathematical equations to simulate the interactions between the atmosphere, oceans, land surface, and ice. By understanding and predicting these interactions, climate models help scientists and policymakers prepare for future climate scenarios.
Climate models are essential tools in climate science, providing critical insights into how the Earth's climate system may change in the future. These models use mathematical equations to simulate the interactions between the atmosphere, oceans, land surface, and ice. By understanding and predicting these interactions, climate models help scientists and policymakers prepare for future climate conditions.
from IPython.display import Image, display
from IPython.display import HTML
image_path = r"D:\teachers_training_program\figures\fig3.png"
# Display the image with a standard size
display(Image(filename=image_path, width=900, height=200)) # Adjust width and height as needed
# Automatically hide the code after execution
HTML('''<script>
code_show = false;
function code_toggle() {
if (code_show){
$('div.input').hide();
} else {
$('div.input').show();
}
code_show = !code_show
}
$( document ).ready(code_toggle);
</script>
Click <a href="javascript:code_toggle()">here</a> to toggle the code.
''')
Climate change signals can be quantified by analyzing shifts in temperature distributions over time. By comparing temperature anomalies from different periods, we can assess the extent of warming and its impact on the frequency and intensity of extreme weather events.
The next figure illustrates the impact of climate change by showing how a shift in the average temperature affects the distribution of temperature extremes. The red-shaded area represents an increase in the frequency of extremely hot weather, while the blue-shaded area shows a decrease in the frequency of extremely cold weather.
This shift in the distribution is what we refer to as the "climate change signal." It quantifies the impact of global warming on temperature extremes, which are crucial for understanding future climate risks.
To compute the climate change signal, follow these steps:
The greater the shift in the distribution towards higher temperatures, the stronger the climate change signal. This approach helps in assessing the potential impacts of climate change on future weather patterns and preparing for the associated risks.
</div>
from IPython.display import Image, display
from IPython.display import HTML
image_path = r"D:\teachers_training_program\figures\tpdf.png"
# Display the image with a standard size
display(Image(filename=image_path, width=500, height=200)) # Adjust width and height as needed
# Automatically hide the code after execution
HTML('''<script>
code_show = false;
function code_toggle() {
if (code_show){
$('div.input').hide();
} else {
$('div.input').show();
}
code_show = !code_show
}
$( document ).ready(code_toggle);
</script>
Click <a href="javascript:code_toggle()">here</a> to toggle the code.
''')
One of the key methods to understand the climate change signal is to compare the probability distributions of temperature anomalies across different time periods. The figure below shows kernel density estimates (KDE) of normalized 2m temperature anomalies over Northeast India for two periods: 1940-1949 and 2010-2019.
The shift in the distribution towards higher temperatures in recent years indicates an increase in average temperatures, a hallmark of climate change. The percentages show the probability of occurrence within specific temperature ranges.
from IPython.display import Image, display
from IPython.display import HTML
image_path = r"D:\teachers_training_program\figures\kde.t2m.png"
# Display the image with a standard size
display(Image(filename=image_path, width=800, height=200)) # Adjust width and height as needed
# Automatically hide the code after execution
HTML('''<script>
code_show = false;
function code_toggle() {
if (code_show){
$('div.input').hide();
} else {
$('div.input').show();
}
code_show = !code_show
}
$( document ).ready(code_toggle);
</script>
Click <a href="javascript:code_toggle()">here</a> to toggle the code.
''')
Climate models are sophisticated tools that simulate the Earth's climate system. They are used to understand past, present, and future climate conditions by modeling the interactions between various components of the climate system.
Example: Climate models predicted the global temperature rise with remarkable accuracy in the 20th century, which helped validate their use in future climate projections.
General Circulation Models (GCMs): These models simulate the large-scale circulation patterns of the atmosphere and oceans, providing a detailed representation of the Earth's climate system.
Earth System Models (ESMs): ESMs extend GCMs by including additional processes such as carbon cycles, land use changes, and biogeochemical processes, making them more comprehensive.
Learn More: Explore NASA's Climate Modeling Page to dive deeper into how these models work.
Example: The complex interactions between the atmosphere and oceans are key to predicting phenomena like El Niño, which can cause significant global weather changes.
Representative Concentration Pathways (RCPs): RCPs represent different greenhouse gas concentration trajectories that are used in climate modeling to project future climate scenarios.
Shared Socioeconomic Pathways (SSPs): SSPs are scenarios of socio-economic factors that, when combined with RCPs, provide a framework for analyzing climate impacts under different future conditions.
Climate models are used to predict future temperature increases, sea-level rise, and changes in precipitation patterns. They help assess the potential impacts of climate change on ecosystems, agriculture, water resources, and human health. Models also inform global and regional climate policies, such as the Paris Agreement.
Example: Climate models were instrumental in the development of the Paris Agreement, which aims to limit global warming to well below 2°C.
While climate models are powerful tools, they have limitations. These include uncertainties in projecting local climate changes and in the representation of certain climate processes. However, ongoing improvements in data collection, model resolution, and understanding of climate dynamics are helping to reduce these uncertainties.
Learn More: Discover more about the challenges in climate modeling at the IPCC's latest report.
Climate data is collected from a variety of sources and stored in different formats depending on the type of data, its resolution, and its intended use. Understanding these structures and formats is crucial for working effectively with climate data. Below, we explore some of the most common structures and formats used in climate science.
---Gridded data is a common format in climate science, where data is organized into a grid with specific latitude and longitude intervals. Each grid cell contains a value representing a climate variable, such as temperature or precipitation, averaged over the area of the grid cell.
Example: A global climate model output might have temperature data on a grid with a resolution of 1° x 1°, meaning each grid cell represents a 1° by 1° area on the Earth's surface.
Format: Gridded data is often stored in NetCDF (Network Common Data Form) or HDF (Hierarchical Data Format) files. These formats are designed to store large multi-dimensional data arrays efficiently.
Tools for Accessing: Software like Python (with libraries such as xarray and netCDF4), MATLAB, and specialized climate data tools can be used to manipulate and analyze gridded data.
from IPython.display import Image, display
from IPython.display import HTML
# Path to your image
image_path = r"D:\teachers_training_program\figures\contour.png"
# Display the image
display(Image(filename=image_path))
# Automatically hide the code after execution
HTML('''<script>
code_show = false;
function code_toggle() {
if (code_show){
$('div.input').hide();
} else {
$('div.input').show();
}
code_show = !code_show
}
$( document ).ready(code_toggle);
</script>
Click <a href="javascript:code_toggle()">here</a> to toggle the code.
''')
from IPython.display import Image, display
from IPython.display import HTML
# Path to your image
image_path = r"D:\teachers_training_program\figures\numbers.png"
# Display the image
display(Image(filename=image_path))
# Automatically hide the code after execution
HTML('''<script>
code_show = false;
function code_toggle() {
if (code_show){
$('div.input').hide();
} else {
$('div.input').show();
}
code_show = !code_show
}
$( document ).ready(code_toggle);
</script>
Click <a href="javascript:code_toggle()">here</a> to toggle the code.
''')
Station data is collected from specific locations on the Earth's surface, such as weather stations. Each station records various climate variables, such as temperature, precipitation, wind speed, and humidity, typically at regular intervals (e.g., hourly, daily).
Example: A weather station in New York might record the temperature every hour, providing a time series of temperature data at that location.
Format: Station data is often stored in CSV (Comma-Separated Values) files or as plain text files. Each row in the file typically represents a time point, with columns for different variables.
Tools for Accessing: Station data can be easily accessed and analyzed using spreadsheet software like Excel or programming languages like Python (with pandas) or R.
Time series data refers to data collected sequentially over time. In climate science, this often involves monitoring a specific variable (such as temperature or precipitation) at a particular location or over a specific region.
Example: A time series of annual average global temperatures from 1880 to 2020 shows how the Earth's temperature has changed over time.
Format: Time series data can be stored in various formats, including CSV, JSON, or specialized time series databases. Each entry typically includes a timestamp and the corresponding data value.
Tools for Accessing: Python (with pandas or xarray), R, and time series analysis software are commonly used to handle and analyze time series data.
Remote sensing data is collected from satellites or airborne sensors, providing a global perspective of various climate variables, such as sea surface temperature, vegetation cover, and cloud patterns. This data is often available in high spatial and temporal resolution.
Example: The MODIS (Moderate Resolution Imaging Spectroradiometer) instrument on NASA's satellites collects remote sensing data on land surface temperature, among other variables.
Format: Remote sensing data is often stored in HDF, NetCDF, or GeoTIFF formats, which are suitable for large datasets with geographic metadata.
Tools for Accessing: GIS software like QGIS or ArcGIS, Python (with libraries like rasterio and gdal), and remote sensing-specific software can be used to process and analyze this data.
Reanalysis data combines past observations with modern climate models to provide a comprehensive, consistent dataset that extends back several decades. This data is used to understand past climate conditions and validate climate models.
Example: The ERA5 reanalysis dataset from ECMWF provides hourly estimates of various atmospheric, land, and oceanic climate variables from 1950 to the present.
Format: Reanalysis data is typically stored in NetCDF format, allowing for the efficient storage and retrieval of large multi-dimensional arrays.
Tools for Accessing: Python (with xarray and netCDF4), MATLAB, and specialized climate data tools can be used to access and analyze reanalysis data.
In climate science, a variety of online and offline tools are available for data retrieval, analysis, and visualization. Below is a curated list of essential tools, categorized into online platforms and offline software applications.
---These web-based platforms provide access to vast datasets and powerful visualization tools, enabling researchers to analyze climate data directly from their browsers.
These offline tools provide powerful capabilities for advanced data processing, analysis, and visualization. They are essential for in-depth climate research.
Whether you are working with online platforms or offline software, these tools provide a robust foundation for climate data analysis. Use online tools for quick access to data and basic visualizations, while offline tools are ideal for more detailed, customized analyses.
The combination of these resources allows you to explore, understand, and interpret climate data effectively, whether for research, teaching, or operational purposes.
</div>
AI and cloud-based tools are becoming essential in climate science, offering powerful platforms for data processing, analysis, and visualization. Below are examples of how to use Google Earth Engine, one of the most popular AI tools in the field, for various applications.
---Google Earth Engine (GEE) is a cloud-based platform for planetary-scale environmental data analysis. It allows researchers to access and analyze vast amounts of geospatial data using Google's computational infrastructure. Start by accessing GEE through this link: Google Earth Engine.
Below are examples of how GEE can be applied in environmental monitoring and life sciences:
This example demonstrates how to analyze deforestation in the Amazon rainforest by calculating the Normalized Difference Vegetation Index (NDVI).
Steps:
```python import ee import geemap
ee.Initialize()
aoi = ee.Geometry.Polygon([[-60, -15], [-60, -5], [-50, -5], [-50, -15]])
collection = ee.ImageCollection('MODIS/006/MOD13A1').filterDate('2020-01-01', '2020-12-31').filterBounds(aoi)
mean_ndvi = collection.mean().select('NDVI')
Map = geemap.Map() Map.centerObject(aoi, 6) Map.addLayer(mean_ndvi, {'min': 0, 'max': 1, 'palette': ['red', 'yellow', 'green']}, 'Mean NDVI') Map
This example shows how to monitor water quality in Lake Victoria by calculating the Normalized Difference Water Index (NDWI).
Steps:
```python import ee import geemap
ee.Initialize()
lake_victoria = ee.Geometry.Polygon([[ [32.9, -1.2], [32.9, -3.0], [34.6, -3.0], [34.6, -1.2] ]])
collection = ee.ImageCollection('COPERNICUS/S2').filterDate('2021-01-01', '2021-12-31').filterBounds(lake_victoria)
ndwi = collection.map(lambda image: image.normalizedDifference(['B3', 'B8'])).mean()
Map = geemap.Map() Map.centerObject(lake_victoria, 8) Map.addLayer(ndwi, {'min': 0, 'max': 1, 'palette': ['blue', 'cyan', 'green']}, 'Mean NDWI') Map
We have covered several key aspects of climate data analysis, observation methods, and climate modeling. Below are the main takeaways:
These tools and methods are indispensable for addressing the challenges posed by climate change. By leveraging these resources, we can enhance our understanding and contribute to effective climate action.
This presentation has been made possible through the contributions and resources provided by various organizations and individuals.
### 1. Data SourcesThe climate data and figures used in this talk were sourced from the NASA, JAXA, RIKEN, ECMWF, NCEP, CMIPs and other reliable public climate databases. These datasets are critical to our understanding of climate dynamics and trends, and I am grateful for their availability and access.
### 2. Tools and VisualizationsThe visualizations presented were created using tools like Google Earth Engine and MetPy, which have been instrumental in analyzing and illustrating complex climate data. I appreciate the continued development and support of these tools by their respective teams.
### 3. Academic and Institutional SupportMy deepest gratitude goes to my supervisors, Dr. Rahul Mahanta and Prof. B.N. Goswami, for their invaluable guidance and support throughout this research. I would also like to express my sincere thanks to Dr. Prasanta Goswami for valuable discussions on these topics.
Additionally, I extend my gratitude to the Centre for Cloud and Climate Change and the Assam Science Technology and Environment Council (ASTEC) for inviting me to give these talks, and to Cotton University for providing the necessary resources and a conducive environment for this work.
---For more information, you can reach me at:
Email: end.havoc@gmail.com | phy1891004_prolay@cottonuniversity.ac.in
ORCID ID: https://orcid.org/0000-0002-9404-9029
LinkedIn: linkedin.com/in/prolay-saha-a44744186